package com.jinmdz.fmis.dao.model.search;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jinmdz.fmis.common.annotation.AnColumn;
import com.jinmdz.fmis.common.annotation.AnTable;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.base.BaseBean;
import com.jinmdz.fmis.core.constant.EDictCode;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 优惠惠民查询
 *
 * @author GuanKui
 * @date 2020/2/26 10:39
 */
@AnTable(value = "Sheet", title = "惠民减免统计")
public class SearchHuiMinViewItem extends BaseBean {

    /**
     * 业务编码
     */
    @AnColumn(value = "业务编码", index = 0)
    private String businessCode;

    /**
     * 逝者姓名
     */
    @AnColumn(value = "逝者姓名", index = 1)
    private String deadName;

    /**
     * 逝者性别编号
     */
    @JsonIgnore
    private Integer deadGenderCode;

    /**
     * 逝者性别
     */
    @AnColumn(value = "性别", index = 2)
    @AnDict(dict = EDictCode.SEX, ref = "deadGenderCode")
    private String deadGender;

    /**
     * 逝者年龄
     */
    @AnColumn(value = "年龄", index = 3)
    private String deadAge;

    /**
     * 证件号码
     */
    @AnColumn(value = "证件号码", index = 4)
    private String certificateNo;

    /**
     * 惠民区域编码
     */
    @JsonIgnore
    private Integer benefitDistrictCode;

    /**
     * 惠民区域
     */
    @AnDict(dict = EDictCode.HUIMIN_REGION, ref = "benefitDistrictCode")
    @AnColumn(value = "惠民区域", index = 5)
    private String benefitDistrict;

    /**
     * 减免类型编码
     */
    @JsonIgnore
    private Integer exemptionTypeCode;

    /**
     * 减免类型
     */
    @AnDict(dict = EDictCode.EXEMPTION_TYPE, ref = "benefitDistrictCode")
    @AnColumn(value = "减免类型", index = 6)
    private String exemptionType;

    /**
     * 优惠金额
     */
    @ApiModelProperty(value = "优惠金额")
    @AnColumn(value = "优惠金额", index = 7)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal discountCharge;

    /**
     * 惠民金额
     */
    @ApiModelProperty(value = "惠民金额")
    @AnColumn(value = "惠民类型", index = 8)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal benefitCharge;

    /**
     * 逝者户口所在地
     */
    @AnColumn(value = "户籍地", index = 9)
    private String householdRegistrationPlace;

    /**
     * 火化日期
     */
    @AnColumn(value = "火化日期", pattern = BaseBean.yyyy_MM_dd, index = 10)
    @JsonFormat(pattern = yyyy_MM_dd)
    private Date appointmentDate;

    public String getBusinessCode() {
        return businessCode;
    }

    public SearchHuiMinViewItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getDeadName() {
        return deadName;
    }

    public SearchHuiMinViewItem setDeadName(String deadName) {
        this.deadName = deadName;
        return this;
    }

    public Integer getDeadGenderCode() {
        return deadGenderCode;
    }

    public SearchHuiMinViewItem setDeadGenderCode(Integer deadGenderCode) {
        this.deadGenderCode = deadGenderCode;
        return this;
    }

    public String getDeadGender() {
        return deadGender;
    }

    public SearchHuiMinViewItem setDeadGender(String deadGender) {
        this.deadGender = deadGender;
        return this;
    }

    public String getDeadAge() {
        return deadAge;
    }

    public SearchHuiMinViewItem setDeadAge(String deadAge) {
        this.deadAge = deadAge;
        return this;
    }

    public String getCertificateNo() {
        return certificateNo;
    }

    public SearchHuiMinViewItem setCertificateNo(String certificateNo) {
        this.certificateNo = certificateNo;
        return this;
    }

    public Integer getBenefitDistrictCode() {
        return benefitDistrictCode;
    }

    public SearchHuiMinViewItem setBenefitDistrictCode(Integer benefitDistrictCode) {
        this.benefitDistrictCode = benefitDistrictCode;
        return this;
    }

    public String getBenefitDistrict() {
        return benefitDistrict;
    }

    public SearchHuiMinViewItem setBenefitDistrict(String benefitDistrict) {
        this.benefitDistrict = benefitDistrict;
        return this;
    }

    public Integer getExemptionTypeCode() {
        return exemptionTypeCode;
    }

    public SearchHuiMinViewItem setExemptionTypeCode(Integer exemptionTypeCode) {
        this.exemptionTypeCode = exemptionTypeCode;
        return this;
    }

    public String getExemptionType() {
        return exemptionType;
    }

    public SearchHuiMinViewItem setExemptionType(String exemptionType) {
        this.exemptionType = exemptionType;
        return this;
    }

    public BigDecimal getDiscountCharge() {
        return discountCharge;
    }

    public SearchHuiMinViewItem setDiscountCharge(BigDecimal discountCharge) {
        this.discountCharge = discountCharge;
        return this;
    }

    public BigDecimal getBenefitCharge() {
        return benefitCharge;
    }

    public SearchHuiMinViewItem setBenefitCharge(BigDecimal benefitCharge) {
        this.benefitCharge = benefitCharge;
        return this;
    }

    public String getHouseholdRegistrationPlace() {
        return householdRegistrationPlace;
    }

    public SearchHuiMinViewItem setHouseholdRegistrationPlace(String householdRegistrationPlace) {
        this.householdRegistrationPlace = householdRegistrationPlace;
        return this;
    }

    public Date getAppointmentDate() {
        return appointmentDate;
    }

    public SearchHuiMinViewItem setAppointmentDate(Date appointmentDate) {
        this.appointmentDate = appointmentDate;
        return this;
    }
}
